using UnityEngine;

public class KineticPlanElement
{
	protected Transform character;

	public bool continueWithIdle = true;

	public float animatorSpeed = 1f;

	public Vector3 startPosition;

	public Quaternion startRotation;

	public bool isActive;

	protected Animator animator
	{
		get
		{
			if (character == null)
			{
				return null;
			}
			return character.GetComponent<Animator>();
		}
	}

	public bool isStarted { get; protected set; }

	public float ellapsedTime { get; protected set; }

	public float ellapsedRealTime { get; protected set; }

	public virtual float length
	{
		get
		{
			return 0f;
		}
	}

	public virtual float durationTillEnd
	{
		get
		{
			return 0f;
		}
	}

	public virtual KineticPlan.TransformState GetEndState(KineticPlan.TransformState startState)
	{
		return startState;
	}

	public virtual void OnStart(Transform character)
	{
		isStarted = true;
		this.character = character;
		ellapsedTime = 0f;
		isActive = true;
	}

	public virtual void OnAnimatorMove()
	{
		ellapsedTime += GGGameTime.deltaTime;
	}

	public virtual void OnLateUpdate()
	{
	}
}
